<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>

    <script>

        // map 键值对
        // map 中的键 是不能重复的
        var map = new Map();

        // map 添加
        map.set('key', 'value');
        map.set('key1', 'value1');
        map.set('key2', 'value');

        // map获取
        console.log(map.get('key1'));

        // 遍历  第一种
        // for(var [k,v] of map){
        //     console.log(k,v);
        // }

        // 第二种
        for (var k of map.keys()) {
            console.log(k, map.get(k));
        }

        // 第三种
        for (var v of map.values()) {
            console.log(v);
        }

        // 第四种
        map.forEach(function (v, k) {
            console.log(v, k);
        });

        /* 
        map.clear() – 移除 Map 对象的所有键/值对 。
        map.set() – 设置键值对，返回该 Map 对象。
        map.get() – 返回键对应的值，如果不存在，则返回 undefined。
        map.has() – 返回一个布尔值，用于判断 Map 中是否包含键对应的值。
        map.delete() – 删除 Map 中的元素，删除成功返回 true，失败返回 false。
        map.size – 返回 Map 对象键/值对的数量。
        map.keys() - 返回一个 Iterator 对象， 包含了 Map 对象中每个元素的键 。
        map.values() – 返回一个新的Iterator对象，包含了Map对象中每个元素的值 。
        */
        map.clear();
        console.log(map);

        // 统计出10万个数据里，重复的数据出现了几次，这些重复的数据是哪些
        for(var i=0;i<100000;i++){
            parseInt(Math.random()*10000);
        }
    </script>
</body>

</html>